//Pablo Sosa, 12546
//Yoly Moreno , 12519
//Fecha 22 de julio de 2013
//el driver que utiliza objeto de la calse imppila, aqui se abre un archivo y se lee lo que trae, luego esta inforamcion se envia a la calse imppila


import java.util.Scanner;
import java.io.*;

public class DriPila{
	public static void main (String [] args) throws IOException{
		//se habre el archivo donde viene la instruccion
		Scanner fscan = new Scanner(new File("datos.txt"));
		factori fa = new factori();
		Scanner n = new Scanner(System.in);
		//peradorr obj = new listaimp();
		int d1 = 0;
		int d2=0;
		System.out.println("ingrese si desea lista o array");
		String da = n.next();
		n.nextLine();
		while( (!da.equals("1")) && (!da.equals("2")) && (!da.equals("3"))  ){
		System.out.println("ingrese und ato correcto");
		da = n.next();
		}
		if(da.equals("1")){
		d1 = 1;
		}
		if(da.equals("2")){
		d1 = 2;
		}
		if(da.equals("3")){
		d1 = 3;
		System.out.println("ingrese q tipo d elista desea");
		 da = n.next();
		while( (!da.equals("1")) && (!da.equals("2")) && (!da.equals("3"))  ){
		System.out.println("ingrese und ato correcto");
		 da = n.next();
		}
		if(da.equals("1")){
		d2 = 1;
		}
		if(da.equals("2")){
		d2 = 2;
		}
		else{
		d2= 3;
		}
		}
		

		peradorr obj = fa.getimp(d1, d2);
		int cont = 0;
		String operacion;
		int stop, num1, num2;
		char simbolo;
		String resultado = " ";
		operacion = fscan.nextLine();
		stop = operacion.length();
		obj.setlinea(operacion);
		System.out.println("la operacion es "  + operacion);
		System.out.println("  " + obj.getfac());
		//se le dice que se repita mientras el contador sean menor que el largo de la cadena
		while(cont < (stop)){
			//mira si no hay error para ocntinuar o salir del programa
			if((obj.verificador()) == true){
				//segun la pocicion que toque realiza push,  pop, o ambas
				if(cont <2){
				
					obj.push();
					//System.out.println("dato ignreado :  " + obj.getop());
					obj.setlargo(1);
					obj.setcont();
					
					
				}
				else{
				
				if(obj.gettipo() == 1){
				
				obj.pop();
				//obj.getultimo();
				
				//System.out.println("rsultado :  " + obj.getul());
				obj.setlargo(-1);
					resultado = " el resultado es : " + obj.getresult(); 
					
					
					
					obj.setcont();
				
				}
				else{
				
					obj.push();
					//System.out.println("dato ignreado :  " + obj.getop());
					obj.setlargo(1);
					obj.setcont();
				
				}
				
				
				
				
				}
			
			}
		
		else{
			resultado = "el formato de la operacion no esta bien ";
			
			break;
			
		
		}
			cont = obj.getcont();
		
		}
		System.out.println( resultado);
	
	}
	
	
        
}